WPF和Silverlight具有一个特殊的泛型集合类型,ObservableCollection,该类提供了关于更新的各种通知,比如说当添加项目,移除项目,或者整个列表刷新。如果使用该类的实例作为图表的数据源,则该图将自动反映集合中所做的更改。
在代码中,添加System.Collections.ObjectModel命名空间至您的页面(以及C1.WPF.C1Chart 或者C1.Silverlight.Chart)。这包括ObservableCollection。
C# |
拷贝代码
|
---|---|
using System.Collections.ObjectModel; using C1.WPF.C1Chart; //或者 using C1.Silverlight.Chart; |
然后声明一个Point类型的ObservableCollection集合。这将做为我们的图表的数据来源:
C# |
拷贝代码
|
---|---|
ObservableCollection<Point> points = new ObservableCollection<Point>();
|
清除所有预设图表数据(如果有的话),然后用一些虚拟值填充点集合。
C# |
拷贝代码
|
---|---|
//清除图表数据 c1Chart1.Data.Children.Clear(); //创建虚拟数据 points.Add(new Point(0, 20)); points.Add(new Point(1, 22)); points.Add(new Point(2, 19)); points.Add(new Point(3, 24)); points.Add(new Point(4, 29)); points.Add(new Point(5, 7)); points.Add(new Point(6, 12)); points.Add(new Point(7, 15)); |
Next, create a XYDataSeries bound to this collection and add it to the chart.
C# |
拷贝代码
|
---|---|
//设置C1Chart 数据系列 XYDataSeries ds = new XYDataSeries(); ds.Label = "Series 1"; //绑定数据系列至集合。 ds.ItemsSource = points; //重要:当使用ItemsSource时设置绑定 ds.ValueBinding = new Binding("Y"); ds.XValueBinding = new Binding("X"); //添加数据系列至图表 c1Chart1.Data.Children.Add(ds); |
您可以直接将此点的集合绑定到数据系列的ItemsSource上。同样重要的是要指定ValueBinding (Y)和XValueBinding至Point对象的X和Y字段。就像如果这是您的自定义业务对象,您必须将数据系列的值绑定到所需的字段。然后将数据序列添加到图表的数据集合中。您可以很容易地通过这种方法添加多个数据序列。